import { ArcoCalendarLang, ArcoLang } from '../interface';

const calendarLang: ArcoCalendarLang = {
  formatYear: 'YYYY',
  formatMonth: 'MM/YYYY',
  today: 'Cегодня',
  view: {
    month: 'месяц',
    year: 'год',
    week: 'Неделя',
    day: 'день',
  },
  month: {
    long: {
      January: 'января',
      February: 'февраля',
      March: 'марта',
      April: 'апреля',
      May: 'мая',
      June: 'июня',
      July: 'июля',
      August: 'августа',
      September: 'сентября',
      October: 'октября',
      November: 'ноября',
      December: 'декабря',
    },
    short: {
      January: 'янв',
      February: 'фев',
      March: 'мар',
      April: 'апр',
      May: 'май',
      June: 'июн',
      July: 'июл',
      August: 'авг',
      September: 'сен',
      October: 'окт',
      November: 'ноя',
      December: 'дек',
    },
  },
  week: {
    long: {
      self: 'Неделя',
      monday: 'понедельник',
      tuesday: 'вторник',
      wednesday: 'среда',
      thursday: 'четверг',
      friday: 'пятница',
      saturday: 'суббота',
      sunday: 'воскресенье',
    },
    short: {
      self: 'Неделя',
      monday: 'Пн',
      tuesday: 'Вт',
      wednesday: 'Ср',
      thursday: 'Чт',
      friday: 'Пт',
      saturday: 'Сб',
      sunday: 'Вс',
    },
  },
};

const lang: ArcoLang = {
  locale: 'ru-RU',
  empty: {
    description: 'нет данных',
  },
  drawer: {
    okText: 'OK',
    cancelText: 'Отмена',
  },
  popconfirm: {
    okText: 'OK',
    cancelText: 'Отмена',
  },
  modal: {
    okText: 'OK',
    cancelText: 'Отмена',
  },
  pagination: {
    goto: 'Перейти',
    page: 'Страница',
    countPerPage: '/ стр.',
    total: 'Всего {0}',
  },
  table: {
    okText: 'OK',
    resetText: 'перезагрузить',
  },
  upload: {
    start: 'Начало',
    cancel: 'Отмена',
    delete: 'Удалить',
    retry: 'Нажмите, чтобы повторить попытку',
    buttonText: 'Нажмите, чтобы загрузить',
    preview: 'предварительный просмотр',
    drag: 'Нажмите или перетащите файлы, чтобы загрузить их сюда',
    dragHover: 'Освободите файл и начните загрузку',
    error: 'Загрузка не удалась',
  },
  calendar: calendarLang,
  datePicker: {
    view: calendarLang.view,
    month: calendarLang.month,
    week: calendarLang.week,
    placeholder: {
      date: 'Пожалуйста, выберите дату',
      week: 'Пожалуйста, выберите неделю',
      month: 'Выберите месяц',
      year: 'Пожалуйста, выберите год',
      quarter: 'Выберите квартал',
      time: 'Пожалуйста, выберите время',
    },
    rangePlaceholder: {
      date: ['Дата начала', 'Дата окончания'],
      week: ['начальная неделя', 'конец недели'],
      month: ['месяц начала', 'конец месяца'],
      year: ['год начала', 'конец года'],
      quarter: ['стартовая четверть', 'конец квартала'],
      time: ['время начала', 'время окончания'],
    },
    selectTime: 'Выберите время',
    today: 'Cегодня',
    now: 'В настоящее время',
    ok: 'OK',
  },
  image: {
    loading: 'Загрузка',
  },
  imagePreview: {
    fullScreen: 'полноэкранный',
    rotateRight: 'повернуть вправо',
    rotateLeft: 'повернуть влево',
    zoomIn: 'увеличить',
    zoomOut: 'уменьшить',
    originalSize: 'оригинальный размер',
  },
  typography: {
    copied: 'скопировано',
    copy: 'копировать',
    expand: 'расширять',
    collapse: 'складывать',
    edit: 'редактировать',
  },
  form: {
    validateMessages: {
      required: '#{field} обязательно для заполнения',
      type: {
        string: '#{field} должно быть строкой',
        number: '#{field} должно быть числом',
        boolean: '#{field} должно быть булевым значением (true/false)',
        array: '#{field} должно быть массивом',
        object: '#{field} должно быть объектом',
        url: '#{field} должно быть правильным URL-адресом',
        email: '#{field} должно быть корректным email-адресом',
        ip: '#{field} должно быть правильным IP-адресом',
      },
      number: {
        min: 'Значение #{value} меньше допустимого минимального значения #{min}',
        max: 'Значение #{value} больше допустимого максимального значения #{max}',
        equal: 'Значение должно быть равно #{equal}',
        range: 'Значение должно быть в диапазоне от #{min} до #{max}',
        positive: 'Значение должно быть положительным числом',
        negative: 'Значение должно быть отрицательным числом',
      },
      array: {
        length: 'В #{field} должно быть #{length} элементов',
        minLength: 'Минимум #{minLength} элементов в #{field}',
        maxLength: 'Максимум #{maxLength} элементов в #{field}',
        includes: '#{field} должно содержать #{includes}',
        deepEqual: '#{field} не соответствует ожидаемому значению',
        empty: '#{field} не должно быть пустым',
      },
      string: {
        minLength: '`#{field}` должно содержать не менее #{minLength} символов',
        maxLength: '`#{field}` должно содержать не более #{maxLength} символов',
        length: 'Длина строки в #{field} должна быть ровно #{length} символов',
        match: 'Значение в #{field} не соответствует требуемому формату',
        uppercase: 'Значение в #{field} должно быть в верхнем регистре',
        lowercase: 'Значение в #{field} должно быть в нижнем регистре',
      },
      object: {
        deepEqual: 'Значение в #{field} не совпадает с ожидаемым',
        hasKeys: 'В #{field} должны быть необходимые ключи',
        empty: '#{field} не должно быть пустым объектом',
      },
      boolean: {
        true: 'Значение должно быть true',
        false: 'Значение должно быть false',
      },
    },
  },
  colorPicker: {
    history: 'Недавно использованные цвета',
    preset: 'Цвет системы по умолчанию',
    empty: 'нет данных',
  },
};

export default lang;
